package com.txts.road.app.device.service;

import com.txts.road.app.device.model.entity.DeviceEntity;
import com.txts.road.app.device.model.dto.SOSRequestDTO;
import com.txts.road.app.device.model.dto.SafeReportDTO;
import com.txts.road.app.device.model.query.DeviceSearchQuery;
import com.txts.road.app.device.model.vo.DeviceVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 设备服务类
 *
 * @author baoyr
 * @since 2025-07-17 10:48
 */
public interface DeviceService extends IService<DeviceEntity> {


    /**
     * 搜索设备
     *
     * @param searchDTO 设备搜索参数
     * @return 设备列表
     */
    List<DeviceVO> searchDevices(DeviceSearchQuery searchDTO);

    /**
     * 获取设备详情
     *
     * @param deviceId 设备ID
     * @return 设备详情
     */
    DeviceVO getDeviceDetail(Long deviceId);

    /**
     * 连接设备
     *
     * @param deviceId 设备ID
     * @reture true:连接成功 false:连接失败
     */
    Boolean connectDevice(Long deviceId);

    /**
     * 断开设备连接
     *
     * @param deviceId 设备ID
     * @return true:断开成功 false:断开失败
     */
    Boolean disconnectDevice(Long deviceId);


    /**
     * 发送报平安消息
     *
     * @param reportDTO 报平安参数
     * @return true:发送成功 false:发送失败
     */
    Boolean sendSafeReport(SafeReportDTO reportDTO);

    /**
     * 发送SOS求救
     *
     * @param sosDTO SOS求救参数
     * @return true:发送成功 false:发送失败
     */
    Boolean sendSOS(SOSRequestDTO sosDTO);

}
